/// Author: QP
/// Version: 1.0
/// Date:2021/07/01
/// 生命体征章节条目表
/// 注意，这不是章节类，是生命体征条目类。没有生命体征章节类
Class HCC.SQL.Document.VitalSign Extends (%Persistent, %XML.Adaptor, HCC.SQL.Base) [ CompileAfter = HCC.SQL.Base ]
{

Parameter SectionCode = "8716-3";

Parameter SectionName = "VITAL SIGNS";

Parameter SectionCodeSystemOID = "2.16.840.1.113883.6.1";

Parameter SectionCodeSystem = "LOINC";

/// 文档号
Relationship DocumentNo As HCC.SQL.Document(XMLPROJECTION = "NONE") [ Cardinality = parent, Inverse = VitalSigns ];

/// 体征类型。用于标识体征类型，使用数据元名，例如DE04.10.188.00
Property type As %String;

/// 用于区分多个相同的体征项。例如“住院病案首页”中“新生儿入院体重”和“新生儿出生体重”都是DE04.10.019.00。需要将display设置为体征说明，例如“新生儿入院体重”
Property display As %String;

/// 用于子表的唯一性识别属性
Property uniqueKey As %String [ SqlComputeCode = {set {*}={DocumentNo}_"|"_{type}}, SqlComputed ];

/// 用于子表的唯一性识别
Index IDKey On uniqueKey [ IdKey ];

/// 体征值
Property value As %String;

/// 在INSERT/UPDATE时，检查约束。如果约束检查失败，则回滚SQL操作，并将错误原因放入SQLCODE
Trigger INSERTUPDATETrigger [ Event = INSERT/UPDATE ]
{
    Set tType = {type},tValue={value},tErrMsg=""
    Set tOK = ##class(WS.DE.Tools).Validate(tType,tValue,.tErrMsg)
    If tOK=0
    {
        Set %msg=tErrMsg
        Set %ok=0
    }
}


}
